package com.yupi.project.exception;

import com.yupi.project.common.ErrorCode;

/**
 * 自定义异常类
 
 * 这个类是一个自定义的异常类，名为BusinessException。它继承自RuntimeException，表示在业务逻辑中发生的异常情况。
 * 这个类的作用是提供一个通用的业务异常类，可以在业务逻辑中抛出此异常，并携带错误码和错误消息。
 * 通过继承RuntimeException，它可以在不需要显式地捕获或声明的情况下被抛出。
 * 在异常处理中，可以使用错误码来区分不同的异常类型，并根据需要进行相应的处理。
 */
public class BusinessException extends RuntimeException {

    /**
     * 错误码
     */
    private final int code;

    public BusinessException(int code, String message) {
        super(message);
        this.code = code;
    }

    public BusinessException(ErrorCode errorCode) {
        super(errorCode.getMessage());
        this.code = errorCode.getCode();
    }

    public BusinessException(ErrorCode errorCode, String message) {
        super(message);
        this.code = errorCode.getCode();
    }

    public int getCode() {
        return code;
    }
}
